#include "PrecompiledHeader_Reborn.h"
#include "ICelestial.h"

/*--------------------------------------------------------------------------*/

ICelestial::ICelestial(const NodeCreation& nc, ECelestialType::Type type, float orbit) :
	IRenderableObject(nc),
	m_type(type),
	m_orbit(orbit)
{

}

/*--------------------------------------------------------------------------*/

ICelestial::~ICelestial()
{

}

/*--------------------------------------------------------------------------*/

ECelestialType::Type ICelestial::GetCelestialType() const
{
	return this->m_type;
}

/*--------------------------------------------------------------------------*/

float ICelestial::GetOrbit() const
{
	return this->m_orbit;
}

/*--------------------------------------------------------------------------*/

void ICelestial::SetOrbit(float norbit)
{
	this->m_orbit = norbit;
}

/*--------------------------------------------------------------------------*/

float ICelestial::GetYearLength() const
{
	return this->m_yearlength;
}

/*--------------------------------------------------------------------------*/

void ICelestial::SetYearLength(float f)
{
	this->m_yearlength = f;
}

/*--------------------------------------------------------------------------*/

void ICelestial::OnEnter()
{

}

/*--------------------------------------------------------------------------*/

void ICelestial::OnLeave()
{

}

/*--------------------------------------------------------------------------*/

CameraDesc ICelestial::GetChildCameraDesc()
{
	AssertLogC(true, "Unimplemented GetChildCameraDesc()");

	CameraDesc cd;
	cd.m_farplane = 1000000.0f;
	cd.m_nearplane = 0.01f;
	cd.m_fov = 70.0f;
	cd.m_method = ERenderPhaseMethod::NormalRendering;

	return cd;
}

/*--------------------------------------------------------------------------*/

void ICelestial::ProcessInitData(void* data)
{

}

/*--------------------------------------------------------------------------*/

void ICelestial::GenerateContent()
{

}

/*--------------------------------------------------------------------------*/

void ICelestial::DestroyContent()
{

}

/*--------------------------------------------------------------------------*/

void ICelestial::DoMovement()
{

}

/*--------------------------------------------------------------------------*/

void ICelestial::CalculateChildsMovement()
{

}

/*--------------------------------------------------------------------------*/

bool ICelestial::CanBeHost()
{
	return false;
}

/*--------------------------------------------------------------------------*/

void ICelestial::Log()
{
	std::cout << "UNAVAILABLE LOG FOR " << this->GetName() << "\n";
}

/*--------------------------------------------------------------------------*/

const glm::vec3& ICelestial::GetChildPosition(uint id)
{
	return glm::vec3();
}

/*--------------------------------------------------------------------------*/
